package br.com.mkmts.model.produtos;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import br.com.mkmts.model.constants.TipoFluxoEstoqueEnum;


@Entity
@Table(name = "tEstoqueHistorico")
public class EstoqueHistoricoEntity implements Serializable {

	private static final long serialVersionUID = 1981222972220871359L;

	@ManyToOne
	@JoinColumn(name = "codProduto")
	private ProdutoEntity codProduto;

	@Column(name = "qtdeEntradaProduto")
	private Integer qtdeEntradaProduto;
	
	@Column(name = "qtdeSaidaProduto")
	private Integer qtdeSaidaProduto;

	@Column(name = "valortotalEmEstoqueDoProduto")
	private BigDecimal valorDaMovimentacao;

	@Column(name = "disponivel")
	private boolean disponivel;

	@Column(name = "dtMovimentacao")
	private Date dtMovimentacao;
	
	@Enumerated(EnumType.ORDINAL)
	@Column(name = "tipoFluxoEstoque")
	private TipoFluxoEstoqueEnum tipoFluxoEstoque;
	
	@Id
	@Column(name = "id")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	public ProdutoEntity getCodProduto() {
		return codProduto;
	}

	public void setCodProduto(ProdutoEntity codProduto) {
		this.codProduto = codProduto;
	}

	public Integer getQtdeEntradaProduto() {
		return qtdeEntradaProduto;
	}

	public void setQtdeEntradaProduto(Integer qtdeEntradaProduto) {
		this.qtdeEntradaProduto = qtdeEntradaProduto;
	}

	public Integer getQtdeSaidaProduto() {
		return qtdeSaidaProduto;
	}

	public void setQtdeSaidaProduto(Integer qtdeSaidaProduto) {
		this.qtdeSaidaProduto = qtdeSaidaProduto;
	}

	public BigDecimal getValorDaMovimentacao() {
		return valorDaMovimentacao;
	}

	public void setValorDaMovimentacao(BigDecimal valorDaMovimentacao) {
		this.valorDaMovimentacao = valorDaMovimentacao;
	}

	public TipoFluxoEstoqueEnum getTipoFluxoEstoque() {
		return tipoFluxoEstoque;
	}

	public void setTipoFluxoEstoque(TipoFluxoEstoqueEnum tipoFluxoEstoque) {
		this.tipoFluxoEstoque = tipoFluxoEstoque;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public boolean isDisponivel() {
		return disponivel;
	}

	public void setDisponivel(boolean disponivel) {
		this.disponivel = disponivel;
	}

	public Date getDtMovimentacao() {
		return dtMovimentacao;
	}

	public void setDtMovimentacao(Date dtMovimentacao) {
		this.dtMovimentacao = dtMovimentacao;
	}
	
}
